//stack.h
/********************************************************************************
*																				*
*	Author:			Jared Szechy												*
*	Assignment:		Assignment 6												*
*	Class:			CPS-151														*
*	Instructor:		V. Starkley													*
*	Due Date:		October 13													*
*																				*
*	This file defines the stack class.											*
*																				*
********************************************************************************/
#ifndef CLASS_H
#define CLASS_H

#include "max_items.h"

template <class ItemType>
class Stack
{
	public:

		Stack();
		//pre: none
		//post: an empty Stack has been created of size MAX_SIZE

		void MakeEmpty();
		//pre: none
		//post: sets the stack as empty

		bool IsEmpty();
		//pre: none
		//post: return true if stack is empty; false if not empty

		bool IsFull();
		//pre: none
		//post: returns true if stack is full; returns false if not full

		bool Push(ItemType item);
		//pre: none
		//post: item is placed on top of stack if stack is not full

		bool Pop(ItemType& item);
		//pre: none
		//post: top item is copied to item if stack is not empty

	private:

		int top;
		ItemType items[MAX_ITEMS];

};

#include "stack.cpp"

#endif
		